Method and System of Peer-to-Peer Communication

ABSTRACT

A method includes receiving a request via a peer-to-peer network at a first media device from a second media device. The request indicates a portion of video content and also indicates a time that delivery of the portion of video content to the second media device is to be completed. The method further includes transmitting, based on a data rate, the portion from the first media device to the second media device. The data rate is based on a bandwidth that is less than an available bandwidth usable by the first media device to transmit data and that is greater than or equal to a bandwidth threshold for serving the request. The bandwidth threshold is based on the time indicated by the request.

PRIORITY CLAIM

This application claims priority from, and is a continuation of, U.S.patent application Ser. No. 11/811,357, filed on Jun. 8, 2007, which isincorporated herein by reference in its entirety.

FIELD OF THE DISCLOSURE

The present disclosure is generally related to internet protocoltelevision (IPTV) applications.

BACKGROUND

IPTV infrastructures comprise an IP Video Hub Office (VHO) which servesvideo content to multiple neighborhoods. A Fiber to the Neighborhood(FTTN) approach can be used to provide connections between the IP VHOand the neighborhoods. A connection between an IP VHO and a neighborhoodmay have a bandwidth of 1 Gbps, for example. Each connection may act asa bottleneck as a number of Video-on-Demand (VOD) users increases andrequests shift from standard definition television (SDTV) content (whichrequires 2 Mps) to high definition television (HDTV) content (whichrequires 8 Mbps).

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of an embodiment of a network which providesvideo-on-demand movies and television to a plurality of homes in aneighborhood;

FIG. 2 is a flow chart of an embodiment of a method of providingvideo-on-demand movies and television to the homes; and

FIG. 3 is a block diagram of an illustrative embodiment of a generalcomputer system.

DETAILED DESCRIPTION OF THE DRAWINGS

Thus, providing a large number of HDTV-quality video streams to nodes ina neighborhood may strain a fiber link connecting the neighborhood to avideo hub office or another video server. However, communication betweenpeer nodes in the same neighborhood usually does not strain the fiberlink. Disclosed herein are embodiments of a per-neighborhood,peer-to-peer data storage and retrieval network for video streaming andpotentially other uses. In an embodiment, a storage system acceleratesdelivery of video streams by striping popular video content and treatingpeer nodes (or their corresponding set-top boxes) as storage. Thestorage differs from conventional Redundant Array of Inexpensive Disk(RAID) storage in that the individual storage elements provided by thepeer nodes also request data from each other.

A forecast is made of which video content items will be subsequentlyrequested in a time period. The forecast can be based on collectedstatistics for prior video content requests by IPTV customers, and atime-of-day, a day-of-week, and/or a geographical location of aneighborhood. The popular video content (e.g. a top N videos) arestriped in the sense of RAID storage with redundancy and an errorcorrection scheme, and are preemptively cached on peer nodes during atime when network usage is low (e.g. an off-peak time such asovernight). The error correction scheme can be used to ensure reliablecontent delivery in the midst of peer failures.

Embodiments provide reliable and high speed access to the stored dataeven if an upload bandwidth (e.g. 1 Mbps) at each node is limitedcompared to a download bandwidth (e.g. 20 Mbps) and if some or all ofthe nodes have transient connections to the network. For example,consider a community of 250 homes. When a request for a video contentitem is made by a peer, other peers can deliver low-bandwidth streams(e.g. 40 kbps) to meet the streaming requirement (e.g. 8 Mbps) of HDTVvideos without incurring much processing/bandwidth overhead on each peerand without any interruption in video delivery due to the built-inredundancy and error correction scheme.

Also disclosed are embodiments of an incentive scheme that rewards peerswho participate in the peer-to-peer data storage network.

FIG. 1 is a block diagram of an embodiment of a network which providesvideo-on-demand (VoD) movies and television to a plurality of homes 10in a neighborhood. The VoD movies and television may be provided by anIPTV service provider. The network may also provide other services suchas an internet access service and a Voice over Internet Protocol (VoIP)service to the homes 10 in the neighborhood. Each of the homes 10 isconnected to a neighborhood switch 12 via a respective bonded digitalsubscriber line (DSL) connection 14. The neighborhood switch 12 mayserve 200 to 500 homes, for example. In an embodiment, each DSLconnection 14 provides an upload bandwidth of about 1 Mbps and adownload bandwidth of about 22 Mbps.

The switch 12 is connected to at least one server, such as a VoD server16, of an Internet Service Provider (ISP) via a high speed link 20. Thehigh-speed link 20 is used to carry both Internet and VoD traffic. In anembodiment, the high-speed link 20 is a fiber link having a bandwidth ofabout 1 Gbps. The VoD server 16 provides a central office, such as avideo hub office, that serves a plurality of neighborhood switches,including the neighborhood switch 12, for a plurality of neighborhoods.The VoD server 16 is connected to the plurality of neighborhood switchesby a plurality of high-speed links, respectively. In an embodiment, theVoD server 16 serves about 100 neighborhoods. The IPTV service may havea plurality of central offices, including the VoD server 16, each ofwhich serves a respective plurality of neighborhoods.

The high-speed link 20 may act as a bottleneck to a number ofsimultaneous VoD streams that can be supported directly from the VoDserver 16. Further, an amount of Internet bandwidth that the ISP canoffer its customers in the homes 10 may be affected when many videos arestreamed via the high speed link 20.

The switch 12 has a sufficiently large switching capacity to allow thehomes 10 to communicate with each other at the speed of their bonded DSLconnections 14 without having to use the high speed link 20. Thus, theswitch 12 can be used to provide a peer-to-peer network to distributeand communicate video content items between the homes 10. Thepeer-to-peer network reduces the demand on the high speed link 20 andthe VoD server 16.

In an embodiment, the peer-to-peer network is designed for a specificapplication of distributing movies and television items for a smallnumber of peers such as 200 to 500 (or fewer peers), where peeravailability is predictable, where a fixed latency exists between thepeers, and where a central server stores a respective backup copy of allvideo files.

Use of a conventional peer-to-peer solution is problematic fordistributing a video stream having a higher bit rate than the uploadbandwidth of the bonded DSL connection 14. For example, the video streammay be an SDTV video stream that requires 2 Mbps, and the bonded DSLconnection 14 may be limited to 1 Mbps upload bandwidth. In the aboveexample, two peer homes that store the video could cooperate to uploadthe video with the required 2 Mbps to a requesting neighbor home, butwould disadvantageously saturate their own DSL connections 14 thuspreventing them from using their Internet connections.

Therefore, it is desirable to store the video among a larger number ofpeers so that they can cooperate to upload the video to a requestingneighbor without saturating their own DSL connections 14. It is alsodesirable for peers to store less than complete copies of the video inorder to conserve their local storage capacity.

In an embodiment, each of a plurality of peers that are to communicate avideo content item to one or more other peers do not store a completecopy of the video content item. For example, consider a neighborhoodcomprising N peers that, in aggregate, are to store a video content item22. An entire copy of the video content item 22 may be stored by acentral server 24 which provides backup copies of a plurality ofdifferent video content items. The central server 24 may be embodied byeither the VoD server 16 or another server. In contrast to the centralserver 24, each of the N peers may store a respective portion of thevideo content item 22, and not the entire video content item 22. Forexample, a first peer 30 may store a first portion 32, a second peer 34may store a second portion 36, a third peer 40 may store a third portion42, etc., up to an (N−1)th peer 44 storing an (N−1)th portion 46, and anNth peer 50 storing an Nth portion 52. The first portion 32 through theNth portion 52 are selected so that an aggregation thereof provides theentire video content item 22. The portions either may partition thevideo content item 22 or may overlap. Although overlapping portionsprovide redundancy in the peer-to-peer network, use of the centralserver 24 and an erasure code as subsequently described herein ispreferred to provide the redundancy.

Each of the portions may have the same size, or may have differentsizes. For equal-sized portions, if the video content item 22 has a sizeof F, then each of the N peers may store a respective portion of sizeF/N. For example, consider 100 peers that, in aggregate, are to store a100 Mb video content item. A first peer may store at least a first Mb ofthe video content item, a second peer may store at least a second Mb ofthe video content item, etc., up to the 100th peer storing at least a100th Mb of the video content item.

In an embodiment, the portions of the video content item 22 arepre-fetched to the peers before the peers have requested or viewed thevideo content item 22. Pre-fetching is suitable because movies andtelevision shows are characterized by a high degree of predictability inwhat will be watched by end viewers. An IPTV database 60 storeshistorical data of previous requests for video content items bysubscribers of an IPTV service. The historical data may be exclusive tothe neighborhood, or may be for a plurality of neighborhoods. Aforecasting component 62 uses the historical data to determine whichvideo content items are most likely to be requested in a future timeperiod by viewers in the neighborhood. The forecasting component 62 mayalso use time-of-day, day-of-week, and/or geographical location of theneighborhood to make the forecast. The forecast may be of a top-50movies and a top-50 television shows, for example. The central server 24distributes, to the peers, portions of the video content items(including the video content item 22) that are forecast to be requestedin the future. The portions of the video content items (including thevideo content item 22) may be pre-fetched to the peers during off-peakhours and at less than a speed necessary for live streaming.

The portions of a video content item may be pre-fetched and stored byless than all of the peers. For example, five portions of a first videocontent item may be pre-fetched and stored by a first group of five ofthe peers, respectively. Similarly, five portions of a second videocontent item may be pre-fetched and stored by a second group of five ofthe peers, respectively, where the second group differs from the firstgroup. In general, different subsets of the peers may be used topre-fetch and store different video content items. For example, 200peers may be grouped into 40 subsets of five peers, with each subsetpre-fetching and storing a respective one of the top 40 movies. If themovies require a 2 Mbps stream and the DSL lines are limited to 1 Mbpsupload bandwidth, then any of the top 40 different movies, oncepre-fetched, can be streamed to a requesting peer, with each of the fiveuploading peers using only 40% of its upload bandwidth (one fifth of 2Mbps is 0.4 Mbps, which is 40% of a 1 Mbps upload bandwidth).

Optionally, multiple groups of peers may pre-fetch and store the samevideo content item. This may occur if the video content item is ablockbuster movie, for example, or another video content item that isexpected to popular and thus be more frequently requested in the futuretime period. Having multiple groups of peers store the same videocontent item enables multiple simultaneous viewers of the video contentitem without the same group being required to support multiplesimultaneous requests. Although multicasting in a small switched networkcan be used for uploading to multiple viewers, re-streaming to oneviewer a part that has been already watched by another viewer consumeshigher bandwidth for an interval.

At any given time, some movies will be watched while other movies arenot being watched. Peers that store parts of the currently-watchedmovies have part of their upload bandwidth being consumed by uploadingtheir parts, while other peers may sit idle. To better balance a load ofuploading video content items among the peers, the video content itemscan be divided into many small pieces. For example, a video content itemcan be divided into one-second clips of 250 kb that are evenlydistributed throughout many peers of the peer-to-peer network.

To further balance the load, all uploading peers that are satisfying arequest from a requesting peer 64 need not immediately send their piecesas fast as possible to the requesting peer 64. The requesting peer 64can indicate, in a request to a serving peer, by what time therequesting peer 64 needs a particular piece of the video content item22. Each serving peer can determine a minimum necessary bandwidth toserve the request. For example, if the requesting peer 64 indicates thatthe particular piece of size S bits will not be needed until T secondslater, the serving peer can determine that the particular piece can besent to the requesting peer 64 at a bit rate of S/T over the T seconds.If T is 200 seconds, then a requested block can be sent at 10 kbps (1%of the upload bandwidth) over 200 seconds, rather than 1 Mbps (100% ofthe upload bandwidth) over a 2-second burst and then lying dormant for198 seconds.

To improve fault tolerance, an error-correcting code (ECC) is employedbefore dividing the video content item into pieces. In an embodiment, anerasure code is selected as the ECC. In this embodiment, the videocontent item 22 is encoded by an erasure encoder 66 to form anerasure-encoded file, and the erasure-encoded file is divided intopieces. In general, an erasure-encoded file has a particular threshold,P %, such that the file can be recovered if any subset of P % or more isfetched. The particular threshold may be 80%, for example. Thus, if therequesting peer 64 receives at least P % of the pieces of theerasure-encoded file from the serving peers, then the requesting peer 64can recover the entire video content item. The overhead associated withusing erasure-encoding is less than the extra data that would resultfrom storing extra copies of the data to be protected.

In an event that the peer-to-peer network fails to fetch one or morepieces of video content item data, the central server 24 is used toserve those pieces of a video content item. The fixed inter-peer latencyallows for a quick detection of a server peer going down unexpectedly.In response thereto, the peer can issue an update message andhigh-priority block fetch to the central server 24. Thus, because of thecentral server 24, an amount of error correction can be selected to beefficient from a storage/bandwidth standpoint, rather than a worst-casescenario.

To determine which peers have a desired video content item, therequesting peer 64 can perform a lookup operation. The lookup can beperformed either by broadcasting a search query or by implementing adistributed hash table (DHT). However, to reduce or eliminate lookupcosts, blocks of video content items can be statically mapped to peersin the network. For example, the requesting peer 64 may store aportion-to-peer map 70 which maps the portions 32, 36, 42, 46 and 52 tothe peers 30, 34, 40, 44 and 50, respectively. In this case, eachrequesting peer can use information indicating which peers are up/downto select a subset of the nodes that are up (i.e. operational toparticipate in satisfying a request for a piece of a video content item)to fulfill a request for a video content item. The requesting peer 64can select the subset deterministically or randomly. For example, for anerasure-encoded video content item, the requesting peer 64 can use theup/down information to select at least P % (e.g. at least 80%) of theblocks for the video content item to request from the peers that are up.Static mapping can eliminate lookup costs due to the small, fixedmembership of peers in the network and the use of error correction toobviate a need for shuffling block ownership.

The requesting peer 64 can receive the up/down information from thecentral server 24 either before or after making a request for a videocontent item. The central server 24 maintains various state information,including the up/down information, about the peers on the network.Long-term profiling information about which peers are up at which timesmay be used in tailoring an amount of error correction used in encodingthe video content items.

The requesting peer 64 comprises a video player 72 which processes theportions of the video content item 22 retrieved from its peers. Thevideo player 72 decodes the retrieved portions of the video content item22 and outputs an associated video display signal to a display device74. Based on the video display signal, the display device 74 displaysthe video content item 22 to a viewer.

The peers also may maintain a cache of video content items that theyhave watched, are watching, or are anticipated to watch. The cache maybe used to enable viewers to rewind through a video content item or toview the video content item multiple times, for example. A movie may becached, for example, at the home of a viewer who is renting the movie.By renting the movie, the viewer may be allowed to watch the movieeither a limited or unlimited number of times and for either a limitedor unlimited period of time. The video content items have been watchedby a viewer can be tracked in order to predict another video contentitem that he/she will likely request in the future. In this case, theentire video content item can be pre-fetched to the viewer's localstorage.

Communication in the network can be performed using User DatagramProtocol (UDP), with video software at each peer keeping its ownre-order buffer. The re-order buffer at a peer may have a larger windowthan that provided by TCP. Use of UDP does not require having a largenumber of open TCP connections.

Peers can be incentivized in various ways to allow use of their spareupload bandwidth for peer-to-peer video distribution. Peers whoparticipate may receive cash, may be subjected to fewer advertisementsin video content items, may receive earlier access to new video contentitems such as movies (where the peers can subsequently stream theseitems to others), or may receive one or more free video content itemsper month.

Regardless of whether or not the IPTV provider schedules which peersstream to whom, the peers can keep track of how much data they havestreamed. A micropayment system can allow micropayments to be exchangedbetween peers (e.g. from a receiving peer to an uploading peer) based onthe streaming. Micropayments can be exchanged multiple times betweenpeers without involving the IPTV provider. Privacy of transactions canbe enabled by masking network addresses of the sender and the receiver,e.g. by using multicast subscription.

FIG. 2 is a flow chart that summarizes an embodiment of a method ofproviding video-on-demand movies and televisions to premises in aneighborhood. The method can be used for full downloading, progressivedownloading and/or streaming applications.

As indicated by block 200, the method comprises providing a peer-to-peernetwork for the premises in the neighborhood. The premises may comprisea plurality of homes, for example.

The peer-to-peer network comprises a switch that serves the plurality ofpremises, and a plurality of digital subscriber line (DSL) connectionsbetween the plurality of premises and the switch. Peers in thepeer-to-peer network are disposed at the premises in the neighborhood.Each of the peers has customer premise equipment (CPE) comprising atransceiver to transmit and receive video content data via its DSLconnection, a data storage device to store received video content dataand other data, a decoder to decode received video content data, a videoplayer to play decoded video content items, and a display device todisplay the decoded video content items to one or more viewers.

As indicated by blocks 202 and 204, the method compriseserasure-encoding a video content item to form erasure-encoded data anddividing the erasure-encoded data into the plurality of portions. Theerasure-encoding has a threshold of P % such that the video content itemcan be recovered using any subset of P % or more of the plurality ofportions. Alternatively, another error correcting code can be used toencode the video content item to form encoded data, with the encodeddata being divided into a plurality of portions.

As indicated by block 206, the method comprises forecasting that thevideo content item is likely to be requested by at least one peer of thepeer-to-peer network. The forecasting may be based on previous videocontent requests made to an Internet Protocol Television service.

As indicated by block 208, the method comprises distributing a pluralityof portions of a video content item to a plurality of peers,respectively, of the peer-to-peer network. Each of the plurality ofportions encodes less than an entire portion of the video content item.The portions are distributed from at least one video server (e.g. avideo hub office) to the switch via at least one high-speed link, andfrom the switch to the plurality of peers via the DSL connections. Thisact of distributing may be performed in response to the aforementionedact of forecasting.

As indicated by block 210, the method comprises each of the plurality ofpeers storing its received portion of the video content item. Each peerstores its received portion in the data storage device of its CPE.

As indicated by block 212, the method comprises mapping the plurality ofportions of the video content item to the plurality of peers.

As indicated by block 214, the method comprises a user at a premiserequesting to view the video content item.

As indicated by block 216, the method comprises selecting at least thesubset of the peers from which to retrieve at least the subset of theplurality of portions based on said mapping. The at least the subset ofthe plurality of portions of the video content item enable recovery ofthe entire portion of the video content item by a peer at the premisedesiring to view the video content item. The at least the subset of thepeers from which to retrieve the at least the subset of the plurality ofportions may be selected so that at least P % of the portions areincluded.

As indicated by block 218, the method comprises retrieving, by therequesting peer at the requesting premise and via the peer-to-peernetwork, the at least the subset of the plurality of portions of thevideo content item from the at least the subset of the peers. Peers inthe at least the subset upload their respective portions via their DSLconnections to the switch. The switch, in turn, communicates theportions to the requesting peer at the requesting premise.

Optionally, a peer can upload its portion based on a size S of theportion and a time T for which the portion is not needed by theretrieving peer. For example, the peer can upload its portion with amaximum upload rate based on S and T, e.g. S/T, or can spread uploadingits portion over a duration based on T (e.g. over at least half of T, atleast 80% of T, at least 90% of T, or substantially all of T).

As indicated by blocks 220 and 222, the method may comprise determininga failure to retrieve a portion of the video content item from one ofthe peers, and retrieving the portion of the video content item from acentral server in response to said determining the failure.

As indicated by blocks 224 and 226, the method comprises decoding, bythe peer, the retrieved portions of the video content item, anddisplaying the video content item based on said decoding.

Embodiments of the herein-disclosed method and system can be used inother applications such as DVD storage, music collection storage, videosharing, and video blogging. By striping and storing an entire DVDcollection at the peers, viewers can select a particular movie from amenu rather than shuffling through disks to play the movie. The IPTVservice may limit network access to the DVD collection based on its ownoffering of videos on demand. For video sharing, a peer can stripe ahome video or a non-copyright video onto the peer-to-peer network. Thepeer can send, to its family and friends, a link to the video striped onthe peer-to-peer network.

Embodiments can be modified for use in general networks (e.g. which mayor may not be a peer-to-peer network). For example, some of the actsdisclosed herein can be performed by one or more nodes of the networkthat are not peers.

Referring to FIG. 3, an illustrative embodiment of a general computersystem is shown and is designated 300. The computer system 300 caninclude a set of instructions that can be executed to cause the computersystem 300 to perform any one or more of the methods or computer basedfunctions disclosed herein. The computer system 300 may operate as astandalone device or may be connected, e.g., using a network, to othercomputer systems or peripheral devices.

In a networked deployment, the computer system may operate in thecapacity of a server or as a client user computer in a server-clientuser network environment, or as a peer computer system in a peer-to-peer(or distributed) network environment. The computer system 300 can alsobe implemented as or incorporated into various devices, such as apersonal computer (PC), a tablet PC, a set-top box (STB), a personaldigital assistant (PDA), a mobile device, a palmtop computer, a laptopcomputer, a desktop computer, a communications device, a wirelesstelephone, a land-line telephone, a control system, a camera, a scanner,a facsimile machine, a printer, a pager, a personal trusted device, aweb appliance, a network router, switch or bridge, or any other machinecapable of executing a set of instructions (sequential or otherwise)that specify actions to be taken by that machine. In a particularembodiment, the computer system 300 can be implemented using electronicdevices that provide voice, video or data communication. Further, whilea single computer system 300 is illustrated, the term “system” shallalso be taken to include any collection of systems or sub-systems thatindividually or jointly execute a set, or multiple sets, of instructionsto perform one or more computer functions.

As illustrated in FIG. 3, the computer system 300 may include aprocessor 302, e.g., a central processing unit (CPU), a graphicsprocessing unit (GPU), or both. Moreover, the computer system 300 caninclude a main memory 304 and a static memory 306, that can communicatewith each other via a bus 308. As shown, the computer system 300 mayfurther include a video display unit 310, such as a liquid crystaldisplay (LCD), an organic light emitting diode (OLED), a flat paneldisplay, a solid state display, or a cathode ray tube (CRT).Additionally, the computer system 300 may include an input device 312,such as a keyboard, and a cursor control device 314, such as a mouse.The computer system 300 can also include a disk drive unit 316, a signalgeneration device 318, such as a speaker or remote control, and anetwork interface device 320.

In a particular embodiment, as depicted in FIG. 3, the disk drive unit316 may include a computer-readable medium 322 in which one or more setsof instructions 324, e.g. software, can be embedded. Further, theinstructions 324 may embody one or more of the methods or logic asdescribed herein. In a particular embodiment, the instructions 324 mayreside completely, or at least partially, within the main memory 304,the static memory 306, and/or within the processor 302 during executionby the computer system 300. The main memory 304 and the processor 302also may include computer-readable media.

In an alternative embodiment, dedicated hardware implementations, suchas application specific integrated circuits, programmable logic arraysand other hardware devices, can be constructed to implement one or moreof the methods described herein. Applications that may include theapparatus and systems of various embodiments can broadly include avariety of electronic and computer systems. One or more embodimentsdescribed herein may implement functions using two or more specificinterconnected hardware modules or devices with related control and datasignals that can be communicated between and through the modules, or asportions of an application-specific integrated circuit. Accordingly, thepresent system encompasses software, firmware, and hardwareimplementations.

In accordance with various embodiments of the present disclosure, themethods described herein may be implemented by software programsexecutable by a computer system. Further, in an exemplary, non-limitedembodiment, implementations can include distributed processing,component/object distributed processing, and parallel processing.Alternatively, virtual computer system processing can be constructed toimplement one or more of the methods or functionality as describedherein.

The present disclosure contemplates a computer-readable medium thatincludes instructions 324 or receives and executes instructions 324responsive to a propagated signal, so that a device connected to anetwork 326 can communicate voice, video or data over the network 326.Further, the instructions 324 may be transmitted or received over thenetwork 326 via the network interface device 320.

While the computer-readable medium is shown to be a single medium, theterm “computer-readable medium” includes a single medium or multiplemedia, such as a centralized or distributed database, and/or associatedcaches and servers that store one or more sets of instructions. The term“computer-readable medium” shall also include any medium that is capableof storing, encoding or carrying a set of instructions for execution bya processor or that cause a computer system to perform any one or moreof the methods or operations disclosed herein.

In a particular non-limiting, exemplary embodiment, thecomputer-readable medium can include a solid-state memory such as amemory card or other package that houses one or more non-volatileread-only memories. Further, the computer-readable medium can be arandom access memory or other volatile re-writable memory. Additionally,the computer-readable medium can include a magneto-optical or opticalmedium, such as a disk or tapes or other storage device to capturecarrier wave signals such as a signal communicated over a transmissionmedium. A digital file attachment to an e-mail or other self-containedinformation archive or set of archives may be considered a distributionmedium that is equivalent to a tangible storage medium. Accordingly, thedisclosure is considered to include any one or more of acomputer-readable medium or a distribution medium and other equivalentsand successor media, in which data or instructions may be stored.

Although the present specification describes components and functionsthat may be implemented in particular embodiments with reference toparticular standards and protocols, the invention is not limited to suchstandards and protocols. For example, standards for Internet and otherpacket switched network transmission (e.g., TCP/IP, UDP/IP, HTML, HTTP)represent examples of the state of the art. Such standards areperiodically superseded by faster or more efficient equivalents havingessentially the same functions. Accordingly, replacement standards andprotocols having the same or similar functions as those disclosed hereinare considered equivalents thereof.

The illustrations of the embodiments described herein are intended toprovide a general understanding of the structure of the variousembodiments. The illustrations are not intended to serve as a completedescription of all of the elements and features of apparatus and systemsthat utilize the structures or methods described herein. Many otherembodiments may be apparent to those of skill in the art upon reviewingthe disclosure. Other embodiments may be utilized and derived from thedisclosure, such that structural and logical substitutions and changesmay be made without departing from the scope of the disclosure.Additionally, the illustrations are merely representational and may notbe drawn to scale. Certain proportions within the illustrations may beexaggerated, while other proportions may be minimized. Accordingly, thedisclosure and the figures are to be regarded as illustrative ratherthan restrictive.

One or more embodiments of the disclosure may be referred to herein,individually and/or collectively, by the term “invention” merely forconvenience and without intending to voluntarily limit the scope of thisapplication to any particular invention or inventive concept. Moreover,although specific embodiments have been illustrated and describedherein, it should be appreciated that any subsequent arrangementdesigned to achieve the same or similar purpose may be substituted forthe specific embodiments shown. This disclosure is intended to cover anyand all subsequent adaptations or variations of various embodiments.Combinations of the above embodiments, and other embodiments notspecifically described herein, will be apparent to those of skill in theart upon reviewing the description.

The Abstract of the Disclosure is provided to comply with 37 C.F.R.§1.72(b) and is submitted with the understanding that it will not beused to interpret or limit the scope or meaning of the claims. Inaddition, in the foregoing Detailed Description, various features may begrouped together or described in a single embodiment for the purpose ofstreamlining the disclosure. This disclosure is not to be interpreted asreflecting an intention that the claimed embodiments require morefeatures than are expressly recited in each claim. Rather, as thefollowing claims reflect, inventive subject matter may be directed toless than all of the features of any of the disclosed embodiments. Thus,the following claims are incorporated into the Detailed Description,with each claim standing on its own as defining separately claimedsubject matter.

The above disclosed subject matter is to be considered illustrative, andnot restrictive, and the appended claims are intended to cover all suchmodifications, enhancements, and other embodiments which fall within thetrue spirit and scope of the present invention. Thus, to the maximumextent allowed by law, the scope of the present invention is to bedetermined by the broadest permissible interpretation of the followingclaims and their equivalents, and shall not be restricted or limited bythe foregoing detailed description.

What is claimed is:
 1. A method comprising: receiving a request via apeer-to-peer network at a first media device from a second media device,the request indicating a portion of video content, wherein the requestindicates a time that delivery of the portion of video content to thesecond media device is to be completed; and transmitting, based on adata rate, the portion from the first media device to the second mediadevice, wherein the data rate is based on a bandwidth that is less thanan available bandwidth usable by the first media device to transmit dataand that is greater than or equal to a bandwidth threshold for servingthe request, the bandwidth threshold based on the time indicated by therequest.
 2. The method of claim 1, further comprising determining, atthe first media device and prior to transmitting the portion to thesecond media device, to transmit the portion to the second media deviceusing less than the available bandwidth.
 3. The method of claim 2,further comprising determining the data rate at the first media devicebased on a size of the portion and the time indicated by the request inresponse to determining to transmit the portion to the second mediadevice.
 4. The method of claim 3, wherein the data rate is less than orequal to S/T, wherein S indicates the size of the portion, and wherein Tindicates an amount of time remaining until the portion is to bedelivered to the second media device.
 5. The method of claim 4, whereinthe first media device transmits the portion to the second media deviceusing at least half of the amount of time remaining.
 6. The method ofclaim 1, wherein the video content includes a plurality of portionsincluding the portion, each of the plurality of portions less than anentire portion of the video content.
 7. The method of claim 6, whereinthe video content is encoded based on an erasure encoding scheme thatenables recovery of one or more portions of the plurality of portionsusing one or more other portions of the plurality of portions.
 8. Themethod of claim 1, further comprising receiving a message at the firstmedia device, the message indicating an incentive.
 9. The method ofclaim 8, wherein the incentive includes a reduction in advertisements invideo content received at the first media device, a monetary payment,early access to a new video content item, free video content, amicropayment from the second media device in exchange for the portion,or any combination thereof.
 10. The method of claim 1, wherein otherportions of the video content are provided to the second media devicefrom other media devices using a peer-to-peer sharing process to enablethe first media device to transmit fewer than all portions of the videocontent to the second media device using less than the availablebandwidth while satisfying a threshold download rate by the second mediadevice.
 11. A computer-readable storage device storing instructionsthat, when executed by a processor, cause the processor to performoperations including: sending a request via a peer-to-peer network to afirst media device from a second media device, the request indicating aportion of video content, wherein the request indicates a time thatdelivery of the portion of video content to the second media device isto be completed; and receiving, based on a data rate, the portion fromthe first media device at the second media device, wherein the data rateis based on a bandwidth that is less than an available bandwidth usableby the first media device to transmit data and that is greater than orequal to a bandwidth threshold for serving the request, the bandwidththreshold based on the time indicated by the request.
 12. Thecomputer-readable storage device of claim 11, the operations furtherincluding selecting a plurality of server-peer media devices from whichto request a subset of a plurality of portions of the video content, theplurality of server-peer media devices including the first media deviceand the subset that includes the portion.
 13. The computer-readablestorage device of claim 12, the operations further including sending aplurality of requests for the subset of the plurality of portions to theplurality of server-peer media devices, the plurality of requestsincluding the request.
 14. The computer-readable storage device of claim12, wherein the video content is erasure-encoded.
 15. Thecomputer-readable storage device of claim 14, wherein the subsetcorresponds to a particular number of the plurality of portions that isless than all portions of the plurality of portions.
 16. Thecomputer-readable storage device of claim 12, the operations furtherincluding: decoding the subset of the plurality of portions to recoverone or more of the portions of the video content using the subset; andplaying the one or more of the portions.
 17. The computer-readablestorage device of claim 12, the operations further including accessing aportion-to-media device mapping for the video content, wherein theplurality of server-peer media devices from which to retrieve the subsetof the plurality of portions is selected based on the portion-to-mediadevice mapping.
 18. The computer-readable storage device of claim 12,wherein the operations further include: determining a failure to receiveone of the plurality of portions of the video content from one of theplurality of media devices; and retrieving the one of the plurality ofportions of the video content from a central server in response todetermining the failure.
 19. A system comprising: a receiver deviceconfigured to receive a request at a first media device via apeer-to-peer network from a second media device, the request indicatinga portion of video content, wherein the request indicates a time thatdelivery of the portion of video content to the second media device isto be completed; and a transmitter device configured to transmit, basedon a data rate, the portion from the first media device to the secondmedia device, wherein the data rate is based on a bandwidth that is lessthan an available bandwidth usable by the first media device to transmitdata and that is greater than or equal to a bandwidth threshold forserving the request, the bandwidth threshold based on the time indicatedby the request.
 20. The system of claim 19, wherein the peer-to-peernetwork comprises a plurality of wire line connections between aplurality of media devices and at least one switch.